package com.haha.helloworld.anime;

import androidx.appcompat.app.AppCompatActivity;

import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import com.haha.helloworld.R;

public class ObjectAnimeActivity extends AppCompatActivity {
    private TextView tv_test;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_object_anime);
        tv_test=(TextView)findViewById(R.id.tv_test);
        //设置动画
        //1.沿Y轴移动500，在2000毫秒内完成
//        tv_test.animate().rotationYBy(500).setDuration(2000).start();


        //2.在2000毫秒内透明度逐渐变为0
//        tv_test.animate().alpha(0).setDuration(2000).start();



//        //3.valueAnimator，设置为0-100变化
//        ValueAnimator valueAnimator=ValueAnimator.ofInt(0,100);
//        //变化在2000毫秒内完成
//        valueAnimator.setDuration(2000);
//        //ValueAnimator值改变监听
//        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                //AnimatedValue为valueAnimator的实际值，0-100
//                Log.d("aaaa","AnimatedValue:"+animation.getAnimatedValue().toString());
//                //AnimatedFraction为动画的进度，0-1
//                Log.d("aaaa","AnimatedFraction:"+animation.getAnimatedFraction()+"");
//                //明白了这两点之后，就可以在这里写一些改变样式的代码了....
//            }
//        });
//        valueAnimator.start();


        //4.ObjectAnimator
        //ofFloat可以存入的值：translationX translationY alpha rotation rotationX等等...
        //将tv_test，的Y轴由0变化到500，再到200，再到800
        ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(tv_test,"translationY",0,500,200,800);
        //动画时间
        objectAnimator.setDuration(2000);
        //值改变监听
        objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                //AnimatedValue为valueAnimator的实际值，0-100
                Log.d("aaaa","AnimatedValue:"+animation.getAnimatedValue().toString());
                //AnimatedFraction为动画的进度，0-1
                Log.d("aaaa","AnimatedFraction:"+animation.getAnimatedFraction()+"");
                //明白了这两点之后，就可以在这里写一些改变样式的代码了....
            }
        });
        objectAnimator.start();

    }
}